<?php

declare(strict_types=1);
namespace App\Controller;

use Hyperf\HttpServer\Annotation\AutoController;
use Hyperf\HttpServer\Contract\RequestInterface;

//通过注解自动定义路由，在类中使用 AutoController 定义时会自动解析该类的所有 public 方法并提供 GET 和 POST 两种请求方式
//AutoController 生成路由规则：
//1、AutoController() 不带参数, Hyperf 生成路由时会将大字母生成下划线加小写字母的形式（如 A 生成 _a ）：
//1-1、MyRouteController 生成 /my_route/方法名
//1-2、MyrouteController 生成 /myroute/方法名
//2、AutoController(prefix="") 指定路由前缀。如 AutoController(prefix="/data"),则生成的路由为 /data/方法名

/**
 * @AutoController()
 */
class AnnotationAutoDefineRouteController
{
    // Hyperf 会自动为此方法生成一个 /annotation_auto_define_route/index 的路由，允许通过 GET 和 POST 方式请求
    public function index(RequestInterface $request)
    {
        // 从请求中获得 id 参数
        $id = $request->input('id', 1);
        return (string)$id;
    }


}